let stu1 =Symbol('李四')
let stu2 =Symbol('李四')

let stu ={
    张三:{math:99,chinese:100,english:100},
    [stu1]:{math:100,chinese:98},
    [stu2]:{math:98}
}
console.log(stu)

//set结果对象，里面的基本数据类型值不充分
let s1 =new Set()
//set结构里面的方法，支持链式操作
let obj ={a:1}
s1.add(obj).add(2).add(2).add(obj)
console.log(s1)

let flag =s1.has(obj)
console.log(falg)

let map = new Map()
let arr = [1, 2, 3]
let str = 'hello'
let fn = function () {

}
map.set(arr, 1)
map.set(str, 2)
map.set(fn, 3)
map.forEach((value, key) => {
    console.log(key, value)
})

let sys = Symbol()
//let obj = { [sys]: 4, a: 1, b: 2 }
console.log(obj)
//只能遍历出字符串类型
Reflect.ownKeys(obj).forEach((key) => {
    console.log(obj[key])
})

let wm = new WeakMap()
wm.set([1,2], 3)
wm.set({a:1,b:2},4)
console.log(wm)
//WeakMap数据结构的数据不能进行遍历，没有size属性，不能记录其长度
// wm.forEach((value,key)=>{
//     console.log(key,value)
// })